package day05;

import java.util.Arrays;

//数组演示
public class ArrayDemo {
    public static void main(String[] args) {
        //1)数组的定义:
        int[] a = new int[5]; //一个整型数组a包含5个元素, 每个元素都是int类型, 默认值为0
        double[] b = new double[10];//一个浮点型数组b包含10个元素, 每个元素都是double类型, 默认值为0.0
        boolean[] c = new boolean[26];//一个布尔型数组c包含26个元素, 每个元素都是布尔类型, 默认值为false
        /*
        * int[] a = new int[5];
        * double[] b = new double[10];
        * boolean[] c = new boolean[26];
        *
        * int[] a = new int[5];
        * double[] b = new double[10];
        * boolean[] c = new boolean[26];
        *
        * int[] a = new int[5];
        * double[] b = new double[10];
        * boolean[] c = new boolean[26];
        * */

        //2) 数组的初始化, 初始化数组中的元素
        int[] arr1 = new int[3];//0,0,0
        int[] arr2 = {2,5,8};//2,5,8
        int[] arr3 = new int[]{2,5,8};//2,5,8
        int[] arr4; //声明一个数组 arr4
        // arr4 = {2,5,8}; 编译错误, 类型不一致, 此方式只能声明同时初始化
        arr4 = new int[]{2,5,8};//2,5,8 正确
        int[] arr5;
        arr5 = new int[3];//0,0,0 正确
        /*
        * int[] arr1 = new int[3];
        * int[] arr2 = {2,5,8};
        * int[] arr3 = new int[]{2,5,8};
        * int[] arr4;
        * arr4 = new int[]{2,5,8}
        * int[] arr5;
        * arr5 = new int[3];
        *
        * int[] arr1 = new int[3];
        * int[] arr2 = {2,5,8}
        * int[] arr3 = new int[]{2,5,8};
        * int[] arr4;
        * arr4 = new int[]{2,5,8};
        * int[] arr5;
        * arr5 = new int[3];
        * */

        //3) 数组的访问: 访问的是数组中的元素
        int[] arr6 = new int[5];
        arr6[2]=18;//给数组中的第三个元素赋值为18
        System.out.println("数组的长度为:"+arr6.length);
        System.out.println("数组的第一个元素是: "+arr6[0]);//0
        arr6[0]=100;//给第一个元素赋值为100
        arr6[1]=200;//给第二个元素赋值为200
        arr6[3]=300;//给第四个元素赋值为300
        System.out.println(arr6[4]);//输出最后一个元素, 默认为0
        arr6[4]=400;//为第五个元素赋值为400
        arr6[5]=500;//为第六个元素赋值为500, 由于该数组没有第六个元素, 运行时会发生数组下标越界异常
        System.out.println(arr6[arr6.length-1]);//输出最后一个元素的值
        /*
        * int[] arr6 = new int[5];
        * arr6[2]=18;
        * System.out.println("数组的长度为:"+arr6.length);
        * System.out.println("数组的第一个元素是: "+arr6[0]);
        * arr6[0] =100;
        * arr6[1] =200;
        * arr6[3] =300;
        * System.out.println(arr6[4]);
        * arr6[4]=400;
        * System.out.println(arr6[arr6.length-1]);
        * */

        //4)数组的遍历: 从头到尾挨个走一遍
        /*
        int[] arr7 = new int[10];
        for ( int i = 0; i < arr7.length; i++ ){//遍历arr7数组
            arr7[i]=100;//变量i代表arr7数组中的每一个数, 为每个数赋值为100
            System.out.println(arr7[i]);//输出每个元素
        }*/
        //给每个元素赋值为0到99的随机数
        int[] arr7 = new int[10];
        for ( int i = 0; i < arr7.length; i++ ){//遍历arr7数组
            arr7[i]=(int)(Math.random()*100);//变量i代表arr7数组中的每一个数, 为每个数赋值为100
            System.out.println(arr7[i]);//输出每个元素
        }
        //创建一个Max0fArray的类, 将数组遍历代码, 再写一遍

    }
}
